package com.gl.glcourses.model
{
	import com.gl.glcourses.events.GLCoursesEvent;
	import com.gl.glcourses.vos.*;
	
	import mx.collections.ArrayCollection;
	import mx.controls.Alert;
	import mx.controls.dataGridClasses.DataGridColumn;

	public class VotarPanelModel extends PresentationModel
	{
		
		// Atributos injectados
		[Bindable]
		public var votacionJSP:Votacion;
		
		[Bindable]
		public var votaciones:ArrayCollection;
		
		[Bindable]
		public var votos:ArrayCollection;
		
		[Bindable]
		public var usuarioLogeado:Usuario;
		
				
		// Atributos no injectados
		[Bindable]
		public var votacionSeleccionada:Votacion;
		
		/*[Bindable]
		public var votacionCursoSeleccionada:VotacionCurso;*/
		
		[Bindable]
		public var votoSeleccionado:Voto;
		
		[Bindable]
		public var comentario:String;
		
		[Bindable]
		public var puntuacion:Number;
		
		// Otros
		[Bindable]
		public var votosVotacionesCurso:ArrayCollection = new ArrayCollection();
		
		[Bindable]
		public var horaCalculada:String;
		
		[Bindable]
		public var _votacionCursoSeleccionada:VotacionCurso;
		
		[Bindable]
		public function get votacionCursoSeleccionada():VotacionCurso
		{
			return _votacionCursoSeleccionada;
		}
		
		public function set votacionMail(value:Votacion):void
		{
			this.votacionJSP = value;
			this.votacionSeleccionada = value;
			this.setVotosGrid();
		}
		
		public function set votacionCursoSeleccionada(value:VotacionCurso):void
		{	
			var numero:Number=30;
			_votacionCursoSeleccionada = value;
			var minutos:Number=votacionCursoSeleccionada.curso.cantidadMinutosTotal;
			var horas:Array = (minutos/60).toString().split(".");
			var minutosFinal:Number = minutos%60;
			horaCalculada = horas[0].toString() +"hs "+ minutosFinal.toString()+"min";
			
			
		}
		
		public function guardarComentario():void
		{
			var event:GLCoursesEvent = new GLCoursesEvent( GLCoursesEvent.ALTA_VOTO );
			
			event.voto = votoSeleccionado;
			
			dispatch( event );
		}
		
		public function getVoto(votacionCurso:VotacionCurso,votacion:Votacion):Voto
		{
			for each(var voto:Voto in votos)
			{
				if(voto.votacionCurso.id == votacionCurso.id)
				{
					return voto;
				}
			}
			var votoNuevo:Voto=new Voto;
			votoNuevo.votacionCurso=votacionCurso;
			votoNuevo.votacion=votacion;
			votoNuevo.puntuacion=0;
			votoNuevo.usuario=usuarioLogeado
			votoNuevo.comentario="";
			return votoNuevo;
		}
		public function setVotosGrid():void
		{
			votosVotacionesCurso = new ArrayCollection();
			
			for each(var votCurso:VotacionCurso in votacionSeleccionada.votacionesCurso)
			{
				votosVotacionesCurso.addItem(this.getVoto(votCurso,votacionSeleccionada));
			}
		}

		
		public function VotarPanelModel()
		{
		}
	}
}